From 2e0416c354ec5f5df3e20ac2dda7f6cdc832230c Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Sun, 26 Mar 2006 11:43:53 +0100 Subject: [PATCH] Don't reclaim vcpus that are not put into use yet when destroying HVM domain. Otherwise, when running a debug=y xen, we will get a assertion failure in vmx_request_clear_vmcs(), since some vcpus may be not initialized for HVM use yet. Signed-off-by: Xin Li Signed-off-by: Jun Nakajima --- xen/arch/x86/hvm/svm/svm.c | 2 ++ xen/arch/x86/hvm/vmx/vmx.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index 22a5bcb418..ea4138f856 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -728,6 +728,8 @@ static void svm_relinquish_guest_resources(struct domain *d) for_each_vcpu ( d, v ) { + if ( !test_bit(_VCPUF_initialised, &v->vcpu_flags) ) + continue; #if 0 /* Memory leak by not freeing this. XXXKAF: *Why* is not per core?? */ free_host_save_area(v->arch.hvm_svm.host_save_area); diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c index 1c1a9fb8fa..9e146477cc 100644 --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -89,6 +89,8 @@ static void vmx_relinquish_guest_resources(struct domain *d) for_each_vcpu ( d, v ) { + if ( !test_bit(_VCPUF_initialised, &v->vcpu_flags) ) + continue; vmx_request_clear_vmcs(v); destroy_vmcs(&v->arch.hvm_vmx); free_monitor_pagetable(v); -- 2.30.2